package cn.com.dmg.myspringboot.textAndImg;

import java.util.Arrays;
import java.util.List;

import cn.hutool.core.util.ArrayUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class KimiUtil {
    public static void main(String[] args) {

        //生成标题
        //List<String> titleList = getTitleList("板栗好吃但是开口麻烦？一招帮你轻松搞定！", 10);
        //titleList.forEach(System.out::println);

        //生成正文
        List<String> contentList = getContentList(" 你是否也曾因为那坚硬的板栗壳而头疼不已？用牙咬，担心牙齿受损；用锤子砸，又怕弄脏厨房。板栗的美味让人难以抗拒，但开壳的麻烦却让人望而却步。 但好消息是，我发现了一个神奇的小工具——板栗开口器！", 2);
        contentList.forEach(System.out::println);

    }

    public static List<String> getContentList(String referContent, int contentCount) {
        String content = "参考我给你的文案，写"+ contentCount +"个类似的小红书文案，不改变文案原本意思，要求每个文案之间使用“本文案结束，下面是新文案”进行分隔，文案风格为小红书，参考分文为：" + referContent;
        JSONObject jsonObject = callKimi(content);
        JSONArray choices = jsonObject.getJSONArray("choices");
        JSONObject choice = choices.getJSONObject(0);
        JSONObject message = choice.getJSONObject("message");
        String reContent = message.getString("content");
        String[] split = reContent.split("本文案结束，下面是新文案");
        return Arrays.asList(split);

    }

    public static List<String> getTitleList(String referTitle, int titleCount) {
        String content = "参考标题：" + referTitle +" 生成"+ titleCount +"个类似的标题，风格为小红书风格，包含表情，返回格式为一行文字，中间使用英文标点符号;分隔，例如：标题1;标题2;标题3";

        JSONObject jsonObject = callKimi(content);
        JSONArray choices = jsonObject.getJSONArray("choices");
        JSONObject choice = choices.getJSONObject(0);
        JSONObject message = choice.getJSONObject("message");
        String reContent = message.getString("content");
        String[] split = reContent.split("；");
        return Arrays.asList(split);
    }


    public static JSONObject callKimi(String content) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("model", "moonshot-v1-8k");
        jsonObject.put("temperature", 0.3);
        JSONArray messages = new JSONArray();
        JSONObject message = new JSONObject();
        message.put("role", "system");
        message.put("content", content);
        messages.add(message);
        jsonObject.put("messages", messages);

        String body = HttpUtil.createPost("https://api.moonshot.cn/v1/chat/completions")
                .header("Authorization", "sk-bdoQLpaPQvsWyENEmqUd33yAKiTW297plqtnpWY7D0JZFl2U")
                .body(jsonObject.toJSONString())
                .execute()
                .body();
        return JSONObject.parseObject(body);
    }
}
